const Router = require("koa-router");
const router = new Router();
const Mock = require("mockjs");

// 订单管理接口
router.post("/order/orderList", (ctx) => {
  try {
    // 安全解析请求参数
    let requestBody = {};
    
    // 检查请求体类型并安全解析
    if (typeof ctx.request.body === 'string') {
      // 如果是字符串，尝试解析为 JSON
      try {
        requestBody = JSON.parse(ctx.request.body);
      } catch (e) {
        console.warn("请求体不是有效的 JSON 格式，使用空对象");
        requestBody = {};
      }
    } else if (typeof ctx.request.body === 'object' && ctx.request.body !== null) {
      // 如果已经是对象，直接使用
      requestBody = ctx.request.body;
    } else {
      // 其他情况使用空对象
      requestBody = {};
    }
    
    // 设置默认参数
    const { page = 1, pageSize = 10 } = requestBody;

    // 打印接收到的参数
    console.log("订单管理接口收到参数:", requestBody);

    // 生成随机订单数据
    const total = 54;
    const data = Mock.mock({
      [`list|${pageSize}`]: [
        {
          orderNo: '@string("number", 6)',
          date: '@date("yyyy-MM-dd")',
          startTime: '@time("HH:mm:ss")',
          endTime: '@time("HH:mm:ss")',
          "equipmentNo|1": ["B109", "C227", "C106", "D158"],
          "money|66-99.1-9": 1,
          "pay|1": ["微信", "支付宝", "储值卡"],
          "status|1": [2, 3, 4],
        },
      ],
    });

    // 返回响应
    ctx.body = {
      code: 200,
      success: true,
      message: "获取订单列表成功",
      data: {
        list: data.list,
        total: total,
        page: parseInt(page),
        pageSize: parseInt(pageSize),
      },
    };
  } catch (error) {
    console.error("订单管理接口出错:", error);
    ctx.body = {
      code: 500,
      success: false,
      message: `服务器内部错误: ${error.message}`,
      data: null,
    };
  }
});

// 导出路由
module.exports = router;